The convolution of an original matrix with a mask (or kernel) matrix is an operation which associates with each element I.sub.i,j of the original matrix an element C.sub.i,j given by: ##EQU1## in which K.sub.h,k are the elements of the mask, and 2.multidot.P+1 and 2.multidot.Q+1 are the number of lines and columns thereof, respectively. Convolution operations are used in various applications, such as image recognition, text analysis, character recognition, automatic steering of vehicles, and the like.
Convolution operations can be performed with the use of neural networks, for example. Neural networks are data-processing systems based on the nervous systems of living creatures. A neural network is composed of processing elements (neurons) connected to one another by connecting elements (synapses). The neurons and the synapses are based upon the corresponding biological elements so that they form a layout comparable to very simple nerve tissue.
Each neuron is represented by a node which receives input values x.sub.1 -x.sub.n (from other neurons or from input nodes of the neural network) through corresponding synapses. Each synapse transfers to the neuron a corresponding input value x.sub.i which is weighted, that is, multiplied by a suitable weight w.sub.i. The neuron adds up the input values weighted by the synapses and outputs a result U (for transmission to other neurons or to an output node of the neural network) on the basis of an activation function f: EQU U=f(.SIGMA.w.sub.i .multidot.x.sub.i)
In particular, in binary neural networks according to the McCulloch-Pitts model, the output U of each neuron can assume only two binary values, 0 and 1. The activation function f compares the sum of the weighted input values with a threshold value V.sub.th and determines the output U on the basis of the result of this comparison. For example, the output U will assume the value 1 if the sum of the weighted input values is greater than the threshold value V.sub.th, otherwise it will assume the value 0. The convolution operation is performed by the storage, in the synapses, of weights correlated with the mask matrix, and the supply of values representative of the original matrix as inputs to the neural network, for example, by means of a set of shift registers.
Various approaches, particularly analog approaches, are known for the production of electronic devices for performing convolution operations as described, for example, in "A Reconfigurable CMOS Neural Network", H. P. Graf, D. Henderson--ISSCC Digest of Technical Papers, pp. 144-145, February 1990. A disadvantage of known electronic devices is that they impose significant limitations on the dimensions of the masks usable (typically 3 lines by 3 columns) in applications where a fast response rate is required (for example, in automatic steering systems for vehicles) since the large number of operations required by large masks reduces the speed of the device. Moreover, these devices are complex and take up a large area when produced in integrated circuit form, particularly with regard to the formation of the synapses.